namespace ext.tree
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Multi selection for a TreePanel.</summary>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
	[ScriptName("MultiSelectionModel")]
	[ScriptNamespace("Ext.tree")]
	[Imported()]
	public partial class MultiSelectionModel : ext.util.Observable
	{
		
		#region Fields
		/// <summary>Fires when the selected nodes change</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		[ScriptName("selectionchangeEventName")]
		public const string SelectionchangeEventName = "selectionchange";
		#endregion
		
		#region Methods
		/// <summary>Deselect a node.</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		/// <param name="node">The node to unselect</param>
		[ScriptName("unselect")]
		public void Unselect(ext.tree.TreeNode node)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Clear all selections</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		[ScriptName("clearSelections")]
		public void ClearSelections()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns true if the node is selected</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		/// <param name="node">The node to check</param>
		[ScriptName("isSelected")]
		public bool IsSelected(ext.tree.TreeNode node)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns an array of the selected nodes</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		[ScriptName("getSelectedNodes")]
		public System.Array GetSelectedNodes()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Select a node.</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		/// <param name="node">The node to select</param>
		/// <param name="e">An event associated with the selection</param>
		/// <param name="keepExisting">True to retain existing selections</param>
		/// <returns>The selected node</returns>
		[ScriptName("select")]
		public ext.tree.TreeNode Select(ext.tree.TreeNode node, ext.EventObject e, bool keepExisting)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when the selected nodes change</summary>
		/// <definedin>src\widgets\tree\TreeSelectionModel.js</definedin>
		[ScriptName("selectionchange")]
		public event ext.auto.Delegate_ext_tree_MultiSelectionModel_And_System_Array Selectionchange;
		#endregion
	}
}
